library(tidyverse)
library(haven)
library(psych)

ruta <- "C:/Users/Matias/Dropbox/Proyectos/Fondecyt Participacion Electoral/Articulos/Electoral Winners y Plebiscito/Harvard Dataverse/2. Constitutional Plebiscite (study 2)/"

load(paste0(ruta,"2. Database/Encuesta Wide (No Recodificada).Rdata"))
pb2022 <- enc_wide; enc_wide <- NULL

# Se cargan datos CASEN para Años de Educación Promedio
load(file=paste0(ruta,"2. Database/casen_education.Rdata"))

pb2022 <- pb2022 %>% mutate(
  #Ola 1
  ## Participación en Noviembre
  part_nov_w01 = factor(P1_w01, labels = c("Si vote","No vote","No tenia edad para votar")),
  part_novD_w01 = factor(ifelse(P1_w01 == 1,1,0),"No vote","Si vote"),
  ## Por quien voto en Noviembre
  cand_nov_w01 = factor(P2_w01, labels = c("Gabriel Boric","Jose Antonio Kast","Franco Parisi",
                                           "Sebastian Sichel","Yasna Provoste","Marco Enriquez-Ominami",
                                           "Eduardo Artes","Nulo/Blanco")),
  cand_novNA_w01 = factor(ifelse(P2_w01 == 8, NA, P2_w01),labels = c("Gabriel Boric","Jose Antonio Kast","Franco Parisi",
                                                                     "Sebastian Sichel","Yasna Provoste","Marco Enriquez-Ominami",
                                                                     "Eduardo Artes")),
  ## Participación en Octubre
  part_oct_w01 = factor(P3_w01, labels = c("Si vote","No vote","No tenia edad para votar")),
  part_octD_w01 = factor(ifelse(P3_w01 == 1,1,0), labels = c("No vote","Si vote")),
  ## Apruebo o Rechazo en Octubre
  voto_oct_w01 = factor(P4_w01, labels = c("Vote Apruebo","Vote Rechazo","Nulo/Blanco")),
  voto_octNA_w01 = factor(ifelse(P4_w01 == 3,NA,P4_w01), labels = c("Vote Arpuebo","Vote Rechazo")),
  ## Aprobación Boric
  aprob_boric_w01 = factor(P5_w01, labels = c("Aprueba","Desaprueba","No sé")),
  aprob_boricD_w01 = factor(ifelse(P5_w01 == 99,NA,P5_w01), labels = c("Aprueba","Desapureba")),
  ## Escala Populismo (Todas las variables)
  populism_w01 = apply(with(pb2022,cbind(P6_1_w01,P6_2_w01,P6_3_w01,P6_4_w01)),1,mean,na.rm = TRUE),
  ## Escala Populismo (Con la mayor fiabilidad)
  populism2_w01 = apply(with(pb2022,cbind(P6_1_w01,P6_2_w01,P6_3_w01)),1,mean,na.rm = TRUE),
  ## Apruebo o Rechazo en Septiembre
  voto_sept_w01 = factor(P7_w01, labels = c("Apruebo","Rechazo","Nulo/Blanco","No votare")),
  voto_septNA_w01 = factor(ifelse(P7_w01 > 2,NA,P7_w01),labels = c("Apruebo", "Rechazo")),
  ## Perspectivas del plebiscito: ¿cuál opción cree que ganará?
  perspect_pb_w01 = factor(P9_w01, labels = c("Apruebo","Rechazo")),
  ## Expectativas electorales
  expect_apruebo_w01 = ifelse(perspect_pb_w01 == "Apruebo",P10_w01,100-P10_w01),
  ## Electoral surprise (COMPLETAR)
  dif_elect_w01 = 38 - expect_apruebo_w01,
  elect_surprise_w01 = factor(case_when(
    voto_septNA_w01 == "Apruebo" & dif_elect_w01 %in% c(-62-12) ~ "Negative Surprise (Apruebo)",
    voto_septNA_w01 == "Apruebo" & dif_elect_w01 %in% c(-11:38) ~ "No Surprise (Apruebo)",
    voto_septNA_w01 == "Rechazo" & dif_elect_w01 %in% c(-62:0) ~ "Positive Surprise (Rechazo)",
    voto_septNA_w01 == "Rechazo" & dif_elect_w01 %in% c(1:38) ~ "Negative Surprise (Rechazo)",
  )),
  ## Evaluación NC
  P11_1_aux = ifelse(P11_1_w01 == 99, NA, P11_1_w01),
  P11_2_aux = ifelse(P11_2_w01 == 99, NA, P11_2_w01),
  P11_3_aux = ifelse(P11_3_w01 == 99, NA, P11_3_w01),
  P11_4_aux = ifelse(P11_4_w01 == 99, NA, P11_4_w01),
  P11_5_aux = ifelse(P11_5_w01 == 99, NA, P11_5_w01),
  P11_6_aux = ifelse(P11_6_w01 == 99, NA, P11_6_w01),
  P11_7_aux = ifelse(P11_7_w01 == 99, NA, P11_7_w01),
  P11_8_aux = ifelse(P11_8_w01 == 99, NA, P11_8_w01),
  P11_9_aux = ifelse(P11_9_w01 == 99, NA, P11_9_w01),
  eval_nc_w01 = apply(with(pb2022,cbind(P11_1_aux,P11_2_aux,P11_3_aux,P11_4_aux,P11_5_aux,
                                        P11_6_aux,P11_7_aux,P11_8_aux,P11_9_aux)),
                      1,mean,na.rm = T),
  P11_1_aux = NULL,
  P11_2_aux = NULL,
  P11_3_aux = NULL,
  P11_4_aux = NULL,
  P11_5_aux = NULL,
  P11_6_aux = NULL,
  P11_7_aux = NULL,
  P11_8_aux = NULL,
  P11_9_aux = NULL,
  ## Escala Izquierda - Derecha
  lrscaleF_w01 = factor(case_when(
    P12_1_w01 >= 0 & P12_1_w01 <= 4 ~ 1,
    P12_1_w01 == 5 | P12_1_w01 == 6 ~ 2,
    P12_1_w01 >= 7 & P12_1_w01 <= 10 ~ 3,
    P12_1_w01 == 77 ~ 4,
  ), labels = c("Izquierda","Centro","Derecha","No Identificado")),
  ## Escala Izquierda - Derecha (Continua: 77 como el promedio)
  lrscale_aux = ifelse(P12_1_w01 == 77,NA,P12_1_w01),
  lrscaleC_w01 = ifelse(is.na(lrscale_aux),mean(lrscale_aux,na.rm=TRUE),lrscale_aux),
  lrscale_aux = NULL,
  ## Escala Izquierda - Derecha (Constitución)
  lrscaleF_cont_w01 = factor(case_when(
    P13_1_w01 %in% c(0:4) ~ 1,
    P13_1_w01 %in% c(5,6) ~ 2,
    P13_1_w01 %in% c(7:10) ~ 3,
    P13_1_w01 == 99 ~ 4
  ), labels = c("Izquierda","Centro","Derecha","No sabe")),
  ## Escala Izquierda - Derecha (Continua; Constitución)
  lrscale_cont_aux = ifelse(P13_1_w01 == 99, NA, P13_1_w01),
  lrscaleC_cont_w01 = ifelse(is.na(lrscale_cont_aux),mean(lrscale_cont_aux,na.rm=TRUE),lrscale_cont_aux),
  lrscale_cont_aux = NULL,
  ## Interes en política
  pol_interes_w01 = factor(P14_w01, labels = c("Nada Interesado","Poco Interesado","Algo Interesado",
                                               "Bastante Interesado","Muy Interesado")),
  pol_interesT_w01 = factor(case_when(
    P14_w01 == 1 | P14_w01 == 2 ~ 1,
    P14_w01 == 3 ~ 2,
    P14_w01 == 4 | P14_w01 == 5 ~ 3
  ), labels = c("No interesado","Algo Interesado","Muy Interesado")),
  ## Conocimiento Político
  pk_A_w01 = ifelse(P15A_w01 == 2,1,0),
  pk_B_w01 = ifelse(P15B_w01 == 3,1,0),
  pk_C_w01 = ifelse(P15C_w01 == 3,1,0),
  pk_D_w01 = ifelse(P15D_w01 == 2,1,0),
  pk_F_w01 = ifelse(P15F_w01 == 3,1,0),
  pk_w01 = apply(with(pb2022,cbind(pk_A_w01,pk_B_w01,pk_C_w01,pk_D_w01,pk_F_w01)),
                 1,mean,na.rm = TRUE),
  ## Satisfacción con la Democracia
  satis_dem_w01 = factor(P16_w01,labels = c("Nada satisfecho","Poco satisfecho",
                                            "Algo satisfecho","Bastante satisfecho",
                                            "Muy satisfecho")),
  satis_demT_w01 = factor(case_when(
    P16_w01 == 1 | P16_w01 == 2 ~ 1,
    P16_w01 == 3 ~ 2,
    P16_w01 == 4 | P16_w01 == 5 ~ 3
  ), labels = c("Insatisfecho","Algo satisfecho","Satisfecho")),
  ## Apoyo al voto
  supp_voto_w01 = apply(with(pb2022,cbind(P17_1_w01,P17_2_w01,P17_3_w01)),1,mean,na.rm=TRUE),
  ## Confianza interpersonal
  prs_trst_w01 = apply(with(pb2022,cbind(P18_1_w01,P18_2_w01,P18_3_w01)),1,mean,na.rm=TRUE),
  ## Confianza politica (Convención incluida)
  pol_trst_w01 = apply(with(pb2022,cbind(P19_1_w01,P19_2_w01,P19_3_w01,
                                         P19_4_w01,P19_5_w01)),1,mean,na.rm=T),
  ## Confianza política (sin Convención)
  pol_trst2_w01 = apply(with(pb2022,cbind(P19_1_w01,P19_2_w01,P19_3_w01,
                                          P19_4_w01)),1,mean,na.rm = TRUE),
  ## Confianza política (placebo)
  trst_placebo_w01 = apply(with(pb2022,cbind(P20_1_w01,P20_2_w01)),1,mean,na.rm=T),
  ## Corrupción
  pol_corrupt_w01 = apply(with(pb2022,cbind(P21A_w01,P21B_w01)),1,mean,na.rm=T),
  ## Octubrism
  octubrism_1_w01 = P22_1_w01,
  octubrism_2_w01 = P22_2_w01,
  octubrism_3_w01 = 6 - P22_3_w01,
  octubrism_4_w01 = 6 - P22_4_w01,
  octubrism_w01 = apply(with(pb2022,cbind(octubrism_1_w01,octubrism_2_w01,octubrism_3_w01,
                                          octubrism_4_w01)),1,mean,na.rm = T),
  ## Progresism
  progresism_w01 = apply(with(pb2022,cbind(P23_1_w01,P23_2_w01,P23_3_w01)),1,mean,na.rm = TRUE),
  ## Materialism
  materialism_w01 = apply(with(pb2022,cbind(P23_4_w01,P23_5_w01,P23_6_w01)),1,mean,na.rm = TRUE),
  ## Sociodemograficos
  ### Educación
  educa_w01 = ifelse(educ_w01 == 99,1,educ_w01),
  educa_w01 = factor(educa_w01, labels = c("Sin educación","Educación Básica incompleta",
                                          "Educación Básica completa", "Educación Media incompleta",
                                          "Educación Media completa", "Técnica superior incompleta",
                                          "Técnica superior completa", "Universitaria incompleta",
                                          "Universitaria completa", "Postgrado, magister, doctorado")),
  # AÑOS DE EDUCACION PROMEDIO PARA CADA NIVEL EDUCACIONAL SEGÚN LO HECHO CON LA CASEN
  anio_educ_prom_w01 = case_when(
    as.numeric(educa_w01) == as.numeric(casen[1,1]) ~ as.numeric(casen[1,2]),
    as.numeric(educa_w01) == as.numeric(casen[2,1]) ~ as.numeric(casen[2,2]),
    as.numeric(educa_w01) == as.numeric(casen[3,1]) ~ as.numeric(casen[3,2]),
    as.numeric(educa_w01) == as.numeric(casen[4,1]) ~ as.numeric(casen[4,2]),
    as.numeric(educa_w01) == as.numeric(casen[5,1]) ~ as.numeric(casen[5,2]),
    as.numeric(educa_w01) == as.numeric(casen[6,1]) ~ as.numeric(casen[6,2]),
    as.numeric(educa_w01) == as.numeric(casen[7,1]) ~ as.numeric(casen[7,2]),
    as.numeric(educa_w01) == as.numeric(casen[8,1]) ~ as.numeric(casen[8,2]),
    as.numeric(educa_w01) == as.numeric(casen[9,1]) ~ as.numeric(casen[9,2]),
    as.numeric(educa_w01) == as.numeric(casen[10,1]) ~ as.numeric(casen[10,2])),
  ### Ingreso según miembros del hogar
  ingreso_aux = ifelse(ingreso_w01 == 99,NA,ingreso_w01),
  n_hogar_rec_w01 = case_when(
    n_hogar_w01 == 0 ~ 1,
    n_hogar_w01 > 7 ~ 7,
    TRUE ~ n_hogar_w01
    ),
  ingreso_nhogar_w01 = case_when(
  # Número de personas en el hogar == 1
  ingreso_aux == 1 & n_hogar_rec_w01 == 1 ~ 3,
  ingreso_aux == 2 & n_hogar_rec_w01 == 1 ~ 4,
  ingreso_aux == 3 & n_hogar_rec_w01 == 1 ~ 4,
  ingreso_aux == 4 & n_hogar_rec_w01 == 1 ~ 4,
  ingreso_aux == 5 & n_hogar_rec_w01 == 1 ~ 5,
  ingreso_aux == 6 & n_hogar_rec_w01 == 1 ~ 5,
  ingreso_aux == 7 & n_hogar_rec_w01 == 1 ~ 5,
  ingreso_aux == 8 & n_hogar_rec_w01 == 1 ~ 6,
  ingreso_aux == 9 & n_hogar_rec_w01 == 1 ~ 6,
  ingreso_aux >= 10 & n_hogar_rec_w01 == 1 ~ 7,
  # Número de personas en el hogar == 2
  ingreso_aux == 1 & n_hogar_rec_w01 == 2 ~ 2,
  ingreso_aux == 2 & n_hogar_rec_w01 == 2 ~ 3,
  ingreso_aux == 3 & n_hogar_rec_w01 == 2 ~ 3,
  ingreso_aux == 4 & n_hogar_rec_w01 == 2 ~ 4,
  ingreso_aux == 5 & n_hogar_rec_w01 == 2 ~ 4,
  ingreso_aux == 6 & n_hogar_rec_w01 == 2 ~ 4,
  ingreso_aux == 7 & n_hogar_rec_w01 == 2 ~ 4,
  ingreso_aux == 8 & n_hogar_rec_w01 == 2 ~ 5,
  ingreso_aux == 9 & n_hogar_rec_w01 == 2 ~ 5,
  ingreso_aux == 10 & n_hogar_rec_w01 == 2 ~ 6,
  ingreso_aux == 11 & n_hogar_rec_w01 == 2 ~ 6,
  ingreso_aux >= 12 & n_hogar_rec_w01 == 2 ~ 7,
  # Número de personas en el hogar == 3
  ingreso_aux == 1 & n_hogar_rec_w01 == 3 ~ 2,
  ingreso_aux == 2 & n_hogar_rec_w01 == 3 ~ 2,
  ingreso_aux == 3 & n_hogar_rec_w01 == 3 ~ 3,
  ingreso_aux == 4 & n_hogar_rec_w01 == 3 ~ 3,
  ingreso_aux == 5 & n_hogar_rec_w01 == 3 ~ 3,
  ingreso_aux == 6 & n_hogar_rec_w01 == 3 ~ 4,
  ingreso_aux == 7 & n_hogar_rec_w01 == 3 ~ 4,
  ingreso_aux == 8 & n_hogar_rec_w01 == 3 ~ 4,
  ingreso_aux == 9 & n_hogar_rec_w01 == 3 ~ 5,
  ingreso_aux == 10 & n_hogar_rec_w01 == 3 ~ 5,
  ingreso_aux == 11 & n_hogar_rec_w01 == 3 ~ 6,
  ingreso_aux == 12 & n_hogar_rec_w01 == 3 ~ 6,
  ingreso_aux == 13 & n_hogar_rec_w01 == 3 ~ 7,
  # Número de personas en el hogar == 4
  ingreso_aux == 1 & n_hogar_rec_w01 == 4 ~ 1,
  ingreso_aux == 2 & n_hogar_rec_w01 == 4 ~ 2,
  ingreso_aux == 3 & n_hogar_rec_w01 == 4 ~ 2,
  ingreso_aux == 4 & n_hogar_rec_w01 == 4 ~ 3,
  ingreso_aux == 5 & n_hogar_rec_w01 == 4 ~ 3,
  ingreso_aux == 6 & n_hogar_rec_w01 == 4 ~ 3,
  ingreso_aux == 7 & n_hogar_rec_w01 == 4 ~ 4,
  ingreso_aux == 8 & n_hogar_rec_w01 == 4 ~ 4,
  ingreso_aux == 9 & n_hogar_rec_w01 == 4 ~ 4,
  ingreso_aux == 10 & n_hogar_rec_w01 == 4 ~ 5,
  ingreso_aux == 11 & n_hogar_rec_w01 == 4 ~ 5,
  ingreso_aux == 12 & n_hogar_rec_w01 == 4 ~ 6,
  ingreso_aux == 13 & n_hogar_rec_w01 == 4 ~ 7,
  # Número de personas en el hogar == 5
  ingreso_aux == 1 & n_hogar_rec_w01 == 5 ~ 1,
  ingreso_aux == 2 & n_hogar_rec_w01 == 5 ~ 2,
  ingreso_aux == 3 & n_hogar_rec_w01 == 5 ~ 2,
  ingreso_aux == 4 & n_hogar_rec_w01 == 5 ~ 2,
  ingreso_aux == 5 & n_hogar_rec_w01 == 5 ~ 3,
  ingreso_aux == 6 & n_hogar_rec_w01 == 5 ~ 3,
  ingreso_aux == 7 & n_hogar_rec_w01 == 5 ~ 3,
  ingreso_aux == 8 & n_hogar_rec_w01 == 5 ~ 4,
  ingreso_aux == 9 & n_hogar_rec_w01 == 5 ~ 4,
  ingreso_aux == 10 & n_hogar_rec_w01 == 5 ~ 5,
  ingreso_aux == 11 & n_hogar_rec_w01 == 5 ~ 5,
  ingreso_aux == 12 & n_hogar_rec_w01 == 5 ~ 6,
  ingreso_aux == 13 & n_hogar_rec_w01 == 5 ~ 7,
  # Número de personas en el hogar == 6
  ingreso_aux == 1 & n_hogar_rec_w01 == 6 ~ 1,
  ingreso_aux == 2 & n_hogar_rec_w01 == 6 ~ 1,
  ingreso_aux == 3 & n_hogar_rec_w01 == 6 ~ 2,
  ingreso_aux == 4 & n_hogar_rec_w01 == 6 ~ 2,
  ingreso_aux == 5 & n_hogar_rec_w01 == 6 ~ 2,
  ingreso_aux == 6 & n_hogar_rec_w01 == 6 ~ 3,
  ingreso_aux == 7 & n_hogar_rec_w01 == 6 ~ 3,
  ingreso_aux == 8 & n_hogar_rec_w01 == 6 ~ 4,
  ingreso_aux == 9 & n_hogar_rec_w01 == 6 ~ 4,
  ingreso_aux == 10 & n_hogar_rec_w01 == 6 ~ 4,
  ingreso_aux == 11 & n_hogar_rec_w01 == 6 ~ 5,
  ingreso_aux == 12 & n_hogar_rec_w01 == 6 ~ 6,
  ingreso_aux == 13 & n_hogar_rec_w01 == 6 ~ 7,
  # Número de personas en el hogar >= 7
  ingreso_aux == 1 & n_hogar_rec_w01 >= 7 ~ 1,
  ingreso_aux == 2 & n_hogar_rec_w01 >= 7 ~ 1,
  ingreso_aux == 3 & n_hogar_rec_w01 >= 7 ~ 2,
  ingreso_aux == 4 & n_hogar_rec_w01 >= 7 ~ 2,
  ingreso_aux == 5 & n_hogar_rec_w01 >= 7 ~ 2,
  ingreso_aux == 6 & n_hogar_rec_w01 >= 7 ~ 2,
  ingreso_aux == 7 & n_hogar_rec_w01 >= 7 ~ 3,
  ingreso_aux == 8 & n_hogar_rec_w01 >= 7 ~ 3,
  ingreso_aux == 9 & n_hogar_rec_w01 >= 7 ~ 4,
  ingreso_aux == 10 & n_hogar_rec_w01 >= 7 ~ 4,
  ingreso_aux == 11 & n_hogar_rec_w01 >= 7 ~ 5,
  ingreso_aux == 12 & n_hogar_rec_w01 >= 7 ~ 5,
  ingreso_aux == 13 & n_hogar_rec_w01 >= 7 ~ 6),
  ingreso_aux = NULL,
  # Ola 2
  ## Participación en el Plebiscito de Salida
  part_sept_w02 = factor(P1_w02, labels = c("Si","No")),
  ## Apruebo o Rechazo en Septiembre
  voto_sept_w02 = factor(P2_w02, labels = c("Apruebo","Rechazo","Nulo/Blanco")),
  voto_septNA_w02 = factor(ifelse(P2_w02 > 2,NA,P2_w02),labels = c("Apruebo","Rechazo")),
  ## Evaluación del resultado
  eval_result_w02 = factor(P3_w02, labels = c("Recibio mas votos de lo que esperaba",
                                              "Recibio menos votos de lo que esperaba",
                                              "Recibio mas o menos lo que esperaba")),
  ## Limpieza del plebiscito
  fraude_w02 = P4_w02,
  ## Emociones positivas
  contento_w02 = P5_1_w02,
  esperanzado_w02 = P5_6_w02,
  orgulloso_w02 = P5_3_w02,
  positive_emotion_w02 = apply(with(pb2022,cbind(contento_w02,esperanzado_w02,orgulloso_w02)),1,mean,na.rm=T),
  ## Emociones negativas
  preocupado_w02 = P5_2_w02,
  triste_w02 = P5_4_w02,
  enojado_w02 = P5_5_w02,
  negative_emotion_w02 = apply(with(pb2022,cbind(preocupado_w02,triste_w02,enojado_w02)),1,mean,na.rn= T),
  ## Interes en política
  pol_interes_w02 = factor(P7_w02, labels = c("Nada Interesado","Poco Interesado","Algo Interesado",
                                               "Bastante Interesado","Muy Interesado")),
  pol_interesT_w02 = factor(case_when(
    P7_w02 == 1 | P7_w02 == 2 ~ 1,
    P7_w02 == 3 ~ 2,
    P7_w02 == 4 | P7_w02 == 5 ~ 3
  ), labels = c("No interesado","Algo Interesado","Muy Interesado")),
  ## Satisfacción con la Democracia
  satis_dem_w02 = factor(P8_w02,labels = c("Nada satisfecho","Poco satisfecho",
                                            "Algo satisfecho","Bastante satisfecho","Muy satisfecho")),
  satis_demT_w02 = factor(case_when(
    P8_w02 == 1 | P8_w02 == 2 ~ 1,
    P8_w02 == 3 ~ 2,
    P8_w02 == 4 | P8_w02 == 5 ~ 3
  ), labels = c("Insatisfecho","Algo satisfecho","Satisfecho")),
  ## Apoyo al voto
  supp_voto_w02 = apply(with(pb2022,cbind(P9_1_w02,P9_2_w02,P9_3_w02)),1,mean,na.rm=TRUE),
  ## Confianza interpersonal
  prs_trst_w02 = apply(with(pb2022,cbind(P10_1_w02,P10_2_w02,P10_3_w02)),1,mean,na.rm=TRUE),
  ## Confianza politica (Convención incluida)
  pol_trst_w02 = apply(with(pb2022,cbind(P11_1_w02,P11_2_w02,P11_3_w02,
                                         P11_4_w02,P11_5_w02)),1,mean,na.rm=T),
  ## Confianza política (sin Convención)
  pol_trst2_w02 = apply(with(pb2022,cbind(P19_1_w01,P19_2_w01,P19_3_w01,
                                         P19_4_w01)),1,mean,na.rm = T),
  ## Confianza política (placebo)
  trst_placebo_w02 = apply(with(pb2022,cbind(P12_1_w02,P12_2_w02)),1,mean,na.rm=T),
  ## Identificación Izquierda - Derecha
  lrscaleF_A_w02 = factor(case_when(
    P13A_1_w02 >= 0 & P13A_1_w02 <= 4 ~ 1,
    P13A_1_w02 == 5 | P13A_1_w02 == 6 ~ 2,
    P13A_1_w02 >= 7 & P13A_1_w02 <= 10 ~ 3,
    P13A_1_w02 == 77 ~ 4,
  ), labels = c("Izquierda","Centro","Derecha","No Identificado")),
  lrscaleF_B_w02 = factor(P13B_w02, labels = c("Derecha","Centro-Derecha","Centro","Centro-Izquierda","Izquierda",
                                               "No se Identifica")),
  ## Escala Izquierda - Derecha (Continua: 77 como el promedio)
  lrscale_aux = ifelse(P13A_1_w02 == 77,NA,P13A_1_w02),
  lrscaleC_w02 = ifelse(is.na(lrscale_aux),mean(lrscale_aux,na.rm=TRUE),lrscale_aux),
  lrscale_aux = NULL,
  ## Aprobación Boric
  aprob_boric_w02 = factor(P14_w02, labels = c("Aprueba","Desaprueba","No sé")),
  aprob_boricD_w02 = factor(ifelse(P14_w02 == 99,NA,P14_w02), labels = c("Aprueba","Desapureba")),
  ## Escala Populismo (Todas las variables)
  populism_w02 = apply(with(pb2022,cbind(P15_1_w02,P15_2_w02,P15_3_w02,P15_4_w02)),1,mean,na.rm = TRUE),
  ## Escala Populismo (Con la mayor fiabilidad)
  populism2_w02 = apply(with(pb2022,cbind(P15_1_w02,P15_2_w02,P15_3_w02)),1,mean,na.rm = TRUE),
  ## Corrupción
  pol_corrupt_w2 = apply(with(pb2022,cbind(P16_w02,P17_w02)),1,mean,na.rm=T),
  ## Octubrism
  octubrism_1_w02 = P18_1_w02,
  octubrism_2_w02 = P18_2_w02,
  octubrism_3_w02 = 6 - P18_3_w02,
  octubrism_4_w02 = 6 - P18_4_w02,
  octubrism_w02 = apply(with(pb2022,cbind(octubrism_1_w02,octubrism_2_w02,octubrism_3_w02,
                                          octubrism_4_w02)),1,mean,na.rm = T),
  ## Progresism
  progresism_w02 = apply(with(pb2022,cbind(P19_1_w02,P19_2_w02,P19_3_w02)),1,mean,na.rm = TRUE),
  ## Materialism
  materialism_w02 = apply(with(pb2022,cbind(P19_4_w02,P19_5_w02,P19_6_w02)),1,mean,na.rm = TRUE),
  ## Opinión del votante del Rechazo (por quien voto Arpuebo)
  rechazo_inteligente_w02 = P20A_1_w02,
  rechazo_egoista_w02 = 6 - P20A_2_w02,
  rechazo_honesto_w02 = P20A_3_w02,
  opinion_votante_rechazo_w02 = apply(with(pb2022,cbind(rechazo_inteligente_w02,rechazo_egoista_w02,
                                                        rechazo_honesto_w02)),1,mean,na.rm=T),
  ## Opinion del votante del Apruebo (por quien voto Rechazo)
  apruebo_inteligente_w02 = P20B_1_w02,
  apruebo_egoista_w02 = 6 - P20B_2_w02,
  apruebo_honesto_w02 = P20B_3_w02,
  opinion_votante_apruebo_w02 = apply(with(pb2022,cbind(apruebo_inteligente_w02,apruebo_egoista_w02,
                                                        apruebo_honesto_w02)),1,mean,na.rm=T),
  ## Sociodemograficos
  ### Educación
  educa_w02 = ifelse(educ_w02 == 99,1,educ_w02),
  educa_w02 = factor(educa_w02, labels = c("Sin educación","Educación Básica incompleta",
                                          "Educación Básica completa", "Educación Media incompleta",
                                          "Educación Media completa", "Técnica superior incompleta",
                                          "Técnica superior completa", "Universitaria incompleta",
                                          "Universitaria completa", "Postgrado, magister, doctorado")),
  # AÑOS DE EDUCACION PROMEDIO PARA CADA NIVEL EDUCACIONAL SEGÚN LO HECHO CON LA CASEN
  anio_educ_prom_w02 = case_when(
    as.numeric(educa_w02) == as.numeric(casen[1,1]) ~ as.numeric(casen[1,2]),
    as.numeric(educa_w02) == as.numeric(casen[2,1]) ~ as.numeric(casen[2,2]),
    as.numeric(educa_w02) == as.numeric(casen[3,1]) ~ as.numeric(casen[3,2]),
    as.numeric(educa_w02) == as.numeric(casen[4,1]) ~ as.numeric(casen[4,2]),
    as.numeric(educa_w02) == as.numeric(casen[5,1]) ~ as.numeric(casen[5,2]),
    as.numeric(educa_w02) == as.numeric(casen[6,1]) ~ as.numeric(casen[6,2]),
    as.numeric(educa_w02) == as.numeric(casen[7,1]) ~ as.numeric(casen[7,2]),
    as.numeric(educa_w02) == as.numeric(casen[8,1]) ~ as.numeric(casen[8,2]),
    as.numeric(educa_w02) == as.numeric(casen[9,1]) ~ as.numeric(casen[9,2]),
    as.numeric(educa_w02) == as.numeric(casen[10,1]) ~ as.numeric(casen[10,2])),
  ### Bienes
  internet_w02 = 2-C3_1_w02,
  tv_w02 = 2-C3_2_w02,
  pc_w02 = 2-C3_3_w02,
  secadora_ropa_w02 = 2-C3_4_w02,
  auto_w02 = 2-C3_5_w02,
  trabajadora_casa_w02 = 2-C3_6_w02,
  bienes_w02 = apply(with(pb2022,cbind(internet_w02,tv_w02,pc_w02,secadora_ropa_w02,
                                       auto_w02,trabajadora_casa_w02)),1,mean,na.rm=T),
  ### Nacionalidad
  nacionalidad_w02 = factor(C4_w02, labels = c("Soy de nacionalidad chilena",
                                               "Soy extranjero y resido en Chile hace más de cinco años",
                                               "Soy extranjero y resido en Chile hace menos de cinco años")),
  ### Religión (asistencia a servicios religiosos)
  asist_relig_w02 = 8-C6_w02,
  ### Identificación indigena
  id_indigena_w02 = factor(C7_w02, labels = c("Mapuche","Aimara","Likan Antai",
                                              "Quechua","Diaguita","Ninguno"))
)

save(pb2022,file = 
       paste0(ruta,"2. Database/Encuesta PB-2022.Rdata"))

